package com.itheima.day30.demo06;

import java.util.ArrayList;

public class EcarTest {
    public static void main(String[] args) {
        /*
       a.定义"电动汽车类"Ecar,包含:
         1)空参构造、满参构造；
         2)成员变量: 品牌 brand（String类型）,价格price（int类型）,续航mile（int类型）；
         3)所有成员变量的set/get方法；
       b.定义测试类EcarTest,完成以下需求:
         1)定义public static ArrayList<Ecar> filter(ArrayList<Ecar> list,int price ,int mile) 方法,要求:
         遍历ArrayList集合，将ArrayList中价格低于参数price,并且续航不低于参数mile的元素存入到另一个ArrayList<Ecar> 中并返回；
         2）main方法中要求：根据以下内容创建并初始化3个Ecar对象, {"威马EX5",179800,400},{"蔚来ES8", 448000,500},
         {"特斯拉ModelX",828000,552}，创建一个ArrayList<Ecar> list_ecar，将上面的3个Ecar对象添加到list_ecar中，
         调用filter方法传入list_ecar,500000和400,方法返回值需要接收，根据接收返回的list集合输出所有元素信息；
         */
        //4. 创建3个Ecar对象,并赋值
        Ecar ecar1 = new Ecar("威马EX5", 179800, 400);
        Ecar ecar2 = new Ecar("蔚来ES8", 448000, 500);
        Ecar ecar3 = new Ecar("特斯拉ModelX", 828000, 552);
        //5. 创建ArrayList<Ecar> list_ecar,并将Ecar对象添加到集合中
        ArrayList<Ecar> list_ecar = new ArrayList<>();
        list_ecar.add(ecar1);
        list_ecar.add(ecar2);
        list_ecar.add(ecar3);
        //6. 调用filter()方法,打印合格元素信息
        ArrayList<Ecar> filter = filter(list_ecar, 500000, 400);
        System.out.println(filter);
    }

    //1. 定义filter()方法
    public static ArrayList<Ecar> filter(ArrayList<Ecar> list, int price, int mile) {
        //2. 创建新的ArrayList集合,用来存放ArrayList中价格低于参数price,并且续航不低于参数mile的元素
        ArrayList<Ecar> newArrayList = new ArrayList<>();
        //2.1 遍历集合
        for (Ecar ecar : list) {
            //2.2 找出价格低于参数price,并且续航不低于参数mile的元素,添加到新集合中
            if (ecar.getPrice() < price && ecar.getMile() >= mile) {
                newArrayList.add(ecar);
            }
        }
        //3. 返回新集合
        return newArrayList;
    }
}
